﻿Public Class ModificarInstitucion
    Inherits System.Web.UI.Page
    Private Sub haceBusqueda()
        Dim Rs As ADODB.Recordset, i As Integer = 1
        Dim dt As New DataTable
        Dim Param(i - 1) As ADODB.Parameter
        Dim cBusqueda As String

        If (txtBusqueda.Text = "") Then
            cBusqueda = " "
        Else
            cBusqueda = txtBusqueda.Text
        End If

        Param(0) = New ADODB.Parameter
        Param(0).Name = "@nombre"
        Param(0).Type = ADODB.DataTypeEnum.adVarChar
        Param(0).Direction = ADODB.ParameterDirectionEnum.adParamInput
        Param(0).Value = cBusqueda
        Param(0).Size = 50

        Rs = Datos.TraerTodos("traerInstitucionMedica", Param, "Busca Institucion Medica para asociar editar")

        dt = FG.cargaUnDataTable(Rs)
        gvInstituciones.DataSource = Nothing
        gvInstituciones.DataSource = dt
        gvInstituciones.DataBind()

        SacaCartelDeAViso(lblMensajes)

        'muestro el cartel de la Seleccione una persona 
        If Rs.RecordCount > 0 Then
            'MuestraCartelDeguardar("Se encontraron las instituciones", lblMensajes)
        Else
            'muestro el mesaje de que no se encontraron resultados
            'MuestraCartelDeguardar("No se encontraron resultados", lblMensajes)
        End If

    End Sub

    Protected Sub btnBusqueda_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles btnBusqueda.Click
        haceBusqueda()
    End Sub

    Protected Sub gvInstituciones_SelectedIndexChanged(sender As Object, e As EventArgs) Handles gvInstituciones.SelectedIndexChanged
        Dim row As GridViewRow = gvInstituciones.SelectedRow

        txtNombreInstitucion.Text = IIf(row.Cells(2).Text = "&nbsp;", "", row.Cells(2).Text)
        Lbl_Oculto_NombreViejo.Text = IIf(row.Cells(2).Text = "&nbsp;", "", row.Cells(2).Text)

        txtCUIT.Text = IIf(row.Cells(3).Text = "&nbsp;", "", row.Cells(3).Text)
        'cboTipoInstitucion.Text = IIf(row.Cells(3).Text = "&nbsp;", " ", row.Cells(3).Text)
        cboTipoInstitucion.SelectedIndex = buscaElemento(row.Cells(4).Text, cboTipoInstitucion)
        txtDomicilio.Text = IIf(row.Cells(5).Text = "&nbsp;", "", row.Cells(5).Text)
        txtNumero.Text = IIf(row.Cells(6).Text = "&nbsp;", "", row.Cells(6).Text)
        txtPiso.Text = IIf(row.Cells(7).Text = "&nbsp;", "", row.Cells(7).Text)
        txtDepto.Text = IIf(row.Cells(8).Text = "&nbsp;", "", row.Cells(8).Text)
        'cboProvincia.Text = IIf(row.Cells(8).Text = "&nbsp;", " ", row.Cells(8).Text)
        cboProvincia.SelectedIndex = buscaElemento(row.Cells(9).Text, cboProvincia)
        FG.CargaCombo("TraeLocalidadxProvincia_MD", cboLocalidad, cboProvincia.Text)
        'cboLocalidad.Text = IIf(row.Cells(9).Text = "&nbsp;", " ", row.Cells(9).Text)
        'cboLocalidad.SelectedIndex = cboLocalidad.Items.IndexOf(cboLocalidad.Items.FindByValue(row.Cells(10).Text))
        cboLocalidad.SelectedIndex = buscaElemento(row.Cells(10).Text, cboLocalidad)
        txtCP.Text = IIf(row.Cells(11).Text = "&nbsp;", "", row.Cells(11).Text)


    End Sub

    Private Function buscaElemento(elemento As String, lista As DropDownList) As Integer
        Dim i As Integer

        buscaElemento = -1

        For i = 0 To lista.Items.Count - 1
            lista.SelectedIndex = i
            If lista.Text = elemento Then
                buscaElemento = i
                Exit For
            End If
        Next i
    End Function

    Private Sub CargaDatos()


        FG.CargaCombo("traerProvincias", CboProvincia)

        If CboProvincia.Text <> "" Then
            FG.CargaCombo("TraeLocalidadxProvincia_MD", cboLocalidad, cboProvincia.Text)
            FG.CargaCombo("traerTipoInstitucion", cboTipoInstitucion)
        End If

    End Sub

    Private Sub ModificarInstitucion_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            'Cargo páginas anterior y actual!!!
            Var_Globales.Setea_paginas("ModificarInstitucion.aspx")
            CargaDatos()
        End If
    End Sub

    Protected Sub CboProvincia_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboProvincia.SelectedIndexChanged

        FG.CargaCombo("TraeLocalidadxProvincia_MD", cboLocalidad, cboProvincia.Text)

    End Sub

    Protected Sub btnGuardar_Click(sender As Object, e As EventArgs) Handles btnGuardar.Click
        Dim i As Integer = 11 'Numero de campos
        Dim param(i - 1) As ADODB.Parameter
        Dim Resultado As Boolean
        Dim n_cuit As Long

        '0 @localidad varchar(50),
        '1 @provincia varchar(50),
        '2 @direccion varchar(50),
        '3 @numero varchar(10),
        '4 @piso varchar(5),
        '5 @dpto varchar(2),
        '6 @nombre varchar(50),
        '7 @tipoInstitucion varchar(50),
        '8 @codPostal int



        If Not IsNumeric(txtCUIT.Text) Then
            n_cuit = 0
        Else
            n_cuit = CLng(txtCUIT.Text)
        End If

        If Not FG.validaCuit(txtCUIT.Text) Then
            MuestraCartel("CUIT Mal, vuelva a esribir CUIT", lblMensajes)
            Exit Sub
        End If

        SacaCartelDeAViso(lblMensajes)

        'cboLocalidad
        param(0) = New ADODB.Parameter
        param(0).Name = "@localidad"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(0).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(0).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(0).Value = cboLocalidad.Text  ' <--el valor que le pasamos a la base
        param(0).Size = 50 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,
        'cboProvincia
        param(1) = New ADODB.Parameter
        param(1).Name = "@provincia"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(1).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(1).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(1).Value = cboProvincia.Text  ' <--el valor que le pasamos a la base
        param(1).Size = 50 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,
        'txtDomicilio
        param(2) = New ADODB.Parameter
        param(2).Name = "@domicilio"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(2).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(2).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(2).Value = txtDomicilio.Text  ' <--el valor que le pasamos a la base
        param(2).Size = 50 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,
        'txtNumero
        param(3) = New ADODB.Parameter
        param(3).Name = "@numero"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(3).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(3).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(3).Value = txtNumero.Text  ' <--el valor que le pasamos a la base
        param(3).Size = 10 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,
        'txtPiso
        param(4) = New ADODB.Parameter
        param(4).Name = "@Piso"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(4).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(4).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(4).Value = txtPiso.Text ' <--el valor que le pasamos a la base
        param(4).Size = 5 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,
        'txtDpto
        param(5) = New ADODB.Parameter
        param(5).Name = "@dpto"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(5).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(5).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(5).Value = txtDepto.Text  ' <--el valor que le pasamos a la base
        param(5).Size = 2 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,
        'tytNombreInstitucion
        param(6) = New ADODB.Parameter
        param(6).Name = "@nombre"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(6).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(6).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(6).Value = txtNombreInstitucion.Text ' <--el valor que le pasamos a la base
        param(6).Size = 50 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,
        'cboTipoInst
        param(7) = New ADODB.Parameter
        param(7).Name = "@tipoInstitucion"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(7).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(7).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(7).Value = cboTipoInstitucion.Text  ' <--el valor que le pasamos a la base
        param(7).Size = 50 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,    
        'txtCP
        param(8) = New ADODB.Parameter
        param(8).Name = "@codPostal"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(8).Type = ADODB.DataTypeEnum.adInteger '<--tipo de dato 
        param(8).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(8).Value = txtCP.Text   ' <--el valor que le pasamos a la base
        param(8).Size = 50 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,
        '
        param(9) = New ADODB.Parameter
        param(9).Name = "@nombreViejo"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(9).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(9).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(9).Value = Lbl_Oculto_NombreViejo.Text ' <--el valor que le pasamos a la base
        param(9).Size = 50 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,
        '
        param(10) = New ADODB.Parameter
        param(10).Name = "@cuit"  '<--nombre del parametro q esta en la base,, no es excencial es para q la funcion error sepa de que parametro hablamos 
        param(10).Type = ADODB.DataTypeEnum.adVarChar '<--tipo de dato 
        param(10).Direction = ADODB.ParameterDirectionEnum.adParamInput '<---eesto no se toca es siempre igual
        param(10).Value = n_cuit ' <--el valor que le pasamos a la base
        param(10).Size = 11 'Si el dato es string ,, lleva longitud , los datos numerico no hacen falta ,,

        Resultado = Datos.Modificar("ModificarInstitucionMedica", param, "InstitucionMedica.aspx, btnGuardar_click")


        If Resultado = True Then
            MuestraCartelDeguardar("Cargo exitoso", lblMensajes)
            limpiarControles()
            haceBusqueda()
        Else
            MuestraCartelDeguardar("Fallo", lblMensajes)
        End If
    End Sub

    Function limpiarControles()
        With Me
            txtCP.Text = ""
            txtDepto.Text = ""
            txtDomicilio.Text = ""
            txtNombreInstitucion.Text = ""
            txtNumero.Text = ""
            txtPiso.Text = ""
            cboLocalidad.SelectedIndex = 0
            cboProvincia.SelectedIndex = 0
            cboTipoInstitucion.SelectedIndex = 0
            txtCUIT.Text = ""
            txtBusqueda.Text = ""
            txtBusqueda.Focus()

        End With

        Return True
    End Function

    Protected Sub btnLimpiar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnLimpiar.Click
        limpiarControles()
        LimpiarGridView(gvInstituciones)
    End Sub
End Class